1. Field
The following description relates to a multi-core apparatus and a job scheduling method thereof.
2. Description of Related Art
An application of a multi-core system, particularly, an application of general purpose computing on graphics processing units (GPGPU), enables an easy parallel processing of a large amount of data, since there is no dependency between the data to be processed. Performance of such parallel processing of a large amount of data may be improved by making the most of resources.
In a general multi-core system, such as a conventional GPU, a job scheduler assigns a maximum number of jobs to each core by a round-robin method, and assigns new jobs again every time jobs processed by the cores are completed one by one, to make sure that the maximum number of jobs is processed all the time. In the case of a computation-intensive workload that mainly uses independent resources, for example, a register file, a shared memory, and a computing unit, as a number of jobs increases, an effect of hiding memory access latency or pipeline latency is enhanced, thereby improving overall performance.
However, in the case of a memory-intensive workload that mainly uses a memory shared by all cores, overall performance cannot be expected to be improved due to a maximum bandwidth limit of a network and a memory, even though a number of jobs is increased. Further, due to network congestion caused by excessive traffic, and insufficiency of Level-2 (L2) cache capacity, performance may be rather degraded in some cases.